package com.abewy.android.apps.klyph.core.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.util.Base64;
import android.util.Log;
import com.abewy.android.apps.klyph.core.BaseApplication;
import com.abewy.android.apps.klyph.core.KlyphDevice;
import com.facebook.Session;
public class FacebookUtil
{
public static final String SQUARE = "square";
public static final String SMALL = "small";
public static final String NORMAL = "normal";
public static final String LARGE = "large";
/**
* @param id id of the user, page, event, ...
* @param imageFormat must one of <code>FacebookUtil.SQUARE, FacebookUtil.SMALL, FacebookUtil.NORMAL, FacebookUtil.LARGE</code>
* @return the url of the image
*/
public static String getImageURLForId(String id, String imageFormat)
{
return new StringBuilder("https://graph.facebook.com/").append(id).append("/picture?type=").append(imageFormat).toString();
}
/**
* @param id id of the user, page, event, ...
* @return the url of a 50px square image
*/
public static String getImageURLForId(String id)
{
return getImageURLForId(id, SQUARE);
}
public static String getProfilePictureURLForId(String id)
{
return new StringBuilder("http://www.abewy.com/apis/facebook/profile_picture.php?id=").append(id).append("&dpi=").append(KlyphDevice.getDeviceDPI()).append("&appName=").append(BaseApplication.getInstance().getPackageName()).append("&accessToken=").append(Session.getActiveSession().getAccessToken()).toString();
}
public static String getLargeProfilePictureURLForId(String id)
{
return new StringBuilder("http://www.abewy.com/apis/facebook/profile_picture.php?id=").append(id).append("&dpi=").append(KlyphDevice.getDeviceDPI()).append("&appName=").append(BaseApplication.getInstance().getPackageName()).append("&type=large&accessToken=").append(Session.getActiveSession().getAccessToken()).toString();
}
public static boolean hasPermission(String permission)
{
return Session.getActiveSession().getPermissions().contains(permission);
}
public static boolean hasPermissions(List<String> permissions)
{
return Session.getActiveSession().getPermissions().containsAll(permissions);
}
public static void logHash(Context context)
{
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(),
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
public static String getBiggestImageURL(String imageUrl)
{
return imageUrl.replace("_s.", "_o.").replace("_t", "_n");
}
}